EGEsoll - сборник решений задач из ЕГЭ

Задача 8 закупка

Предприятие производит закупку изделий A и B, на которую выделена определённая сумма денег. У поставщика есть в наличии различные модификации этих изделий по различной цене. При покупке необходимо руководствоваться следующими правилами:

1. Нужно купить как можно больше изделий, независимо от их типа и модификации.

2. Если можно разными способами купить максимальное количество изделий, нужно выбрать тот способ, при котором будет куплено как можно больше изделий A.

3. Если можно разными способами купить максимальное количество изделий с одинаковым количеством изделий A, нужно выбрать тот способ, при котором вся покупка будет дешевле.

Определите, сколько всего будет куплено изделий A и какая сумма останется неиспользованной.

Download File 1

Добавлено: 24.04.26 18:52

Перейти к решению

Решение

Решение на Python:

f = open("embed.txt")
_, M = list(map(int, f.readline().split()))
order = []
for line in f.readlines():
    order.append(line.split())

order = sorted(order)
buy = []
for el in order.copy():
    if M - int(el[0]) >= 0:
        M -= int(el[0])
        buy.append(el)
        order.remove(el)

buy_a = [x for x in buy if x[1] == "A"]
buy_b = [y for y in buy if y[1] == "B"]
order_a = [z for z in order if z[1] == "A"]

while int(buy_b[-1][0]) + M >= int(order_a[0][0]):
    M += int(buy_b.pop()[0])
    buy.append(order_a[0])
    M -= int(order_a.pop(0)[0])
    

print(len([el for el in buy if el[1] == "A"]), M) # 157 267

Ответ: 157 267

Автор - rubygem17

Объяснение

None

Назад